Virtual computer systems have evolved and continue to evolve to keep up with the demands of the organizations that use them. Many organizations, for example, utilize virtual computer systems for, among other reasons, the purpose of remotely operating one or more virtual servers, including for the development of web applications. The virtual computer systems are often sized according to coarse dimensions. For instance, these systems may be sized according to the number of processor cores, the type and/or amount of attached storage or other factors. This allows a computing resource service provider to repurpose or subdivide the physical systems in an efficient manner, particularly for capacity management. Despite their many advantages, modern virtual computer system services often lack functionality for providing a customer with requested hardware when a customer submits a request to create or migrate a virtual machine instance.
In some instances, a type of virtual machine instance may be implementable using varying types or generations of hardware. As newer hardware is integrated into a fleet of hardware devices, the newer hardware may include various features lacked by older hardware. For instance, the newer hardware may include features (e.g., chipsets which incorporate cryptographic acceleration) that are not used in determining whether the hardware fits within the aforementioned coarse dimensions. Accordingly, the creation of a new virtual machine instance may include these newer, possibly attractive, features. In such circumstances, customers may provision a virtual machine instance and immediately terminate the instance if the allocated physical host does not meet desired hardware requirements. A customer may repeat this process until an instance is created that is implemented on a physical host that includes the desired hardware configuration. This may result in a less than ideal customer experience and other adverse consequences. Some manners of addressing these issues, such as through the purchasing and provisioning of additional server systems with varying configurations to satisfy customer needs, may present significant additional costs and administrative burden.